/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package co.edu.univalle.logica;

import co.edu.univalle.modelo.Clientes;
import co.edu.univalle.persistencia.IClienteDAO;
import java.util.List;
import javax.ejb.EJB;
import javax.ejb.Stateless;

/**
 *
 * @author Jhony
 */
@Stateless
public class ClienteLogica implements ClienteLogicaLocal {
    
    @EJB
    private IClienteDAO clienteDAO;
    

    @Override
    public void registrar(Clientes cliente) throws Exception {
        
        if(cliente == null){
             throw new Exception("El cliente no tiene información");
        }
        
        Clientes objCliente = clienteDAO.consultarPorCedula(cliente.getCedulaCliente());
        
        if(objCliente != null){
            throw new Exception("El cliente ya existe");
        }
        
        if((cliente.getNombres() == null)||(cliente.getNombres().equals(""))){
            throw new Exception("El nombre no puede ser vacio");
        }
        
        if((cliente.getApellidos() == null)||(cliente.getApellidos().equals(""))){
            throw new Exception("El apellido no puede ser vacio");
        }
                     
        clienteDAO.registrar(cliente);
    }

    @Override
    public void modificar(Clientes cliente) throws Exception {
        if(cliente == null){
             throw new Exception("El cliente no tiene información");
        }
        
        Clientes objCliente = clienteDAO.consultarPorCedula(cliente.getCedulaCliente());
        
        if(objCliente != null){
            throw new Exception("El cliente ya existe");
        }
        
        if((cliente.getNombres() == null)||(cliente.getNombres().equals(""))){
            throw new Exception("El nombre no puede ser vacio");
        }
        
        if((cliente.getApellidos() == null)||(cliente.getApellidos().equals(""))){
            throw new Exception("El apellido no puede ser vacio");
        }
                       
        clienteDAO.modificar(cliente);
    }

    @Override
    public void eliminar(Clientes cliente) throws Exception {
        
        if(cliente == null){
             throw new Exception("El cliente no tiene información");
        }
        
        Clientes objCliente = clienteDAO.consultarPorCedula(cliente.getCedulaCliente());
        
        if(objCliente == null){
             throw new Exception("El cliente a eliminar no existe");             
        }
        
        clienteDAO.eliminar(objCliente);
    }

    @Override
    public List<Clientes> consultar() throws Exception {
        return clienteDAO.consultar();
    }

    @Override
    public Clientes consultarPorCedula(Long cedula) throws Exception {
        
        if(cedula == null || cedula.equals("")){
            throw new Exception("El documento es obligatorio");
        }
        
        return clienteDAO.consultarPorCedula(cedula);
    }
}
